<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <!-- 
    ！注意写上题目题数
    例如 ：
    1、选择题
        (1)...A
        (2)...C
        (3)...true false false
        (4)...A
        (5)...C
        ...
    2、填空题
        第1题

        获取节点方法
        (1)...getElementById 
        (2)...getElementsByClassName
        (3)...querySelector

        创建节点方法
        (1)...createElement
        (2)...createTextNode
        (3)...cloneNode

        添加节点方法 
        (1)...node.appendChild
        (2)...node.append

        dom的其他操作方法
        (1)...node.replaceChild(newNode，oldNode); 替换节点
        (2)...node.remove() 删除自身节点
        (3)...document.createDocumentFragment() 文档碎片


        第2题
        (1).object.constructor.prototype
        (2).fn.constructor.prototype
        (3).Object.prototype
        (4).array.constructor.prototype
        (5).Object.prototype
        (6).Function.constructor.prototype
        (7).Array.constructor.prototype
        (8).Object.constructor.prototype
        (9).true.constructor.prototype
        (10).Function

    3.描述题
        第1题
        什么是ajax？
            执行异步网络请求，是一种创建动态网页技术
        第2题
        this只有一个隐藏的 proto 属性.
        this 的原型是 fn.prototype,只有一个属性 constructor
        第3题
        event loop是事件循环是js调控同步和异步任务的机制
        第4题
        原型指的是对象，作用：实现资源共享
        原型链：简单理解就是原型组成的链，对象的__proto__它的是原型，
        而原型也是一个对象，也有__proto__属性，
        原型的__proto__又是原型的原型，
        就这样可以一直通过__proto__想上找，这就是原型链，




    4.逻辑题
        第1题
        Goodbye Jack
        第2题
        10
        第3题
        flase
        第4题
        667
        第5题
        Hy
        Jack
        第6题
        Jack HanMeiMei
        第7题
        1
        test is not a function
        ...
    -->
    <!-- 第五题的第1题 -->
    <script>
        // function Person(name, age, job) {
        //     this.name = name;
        //     this.age = age;
        //     this.job = job;
        // }
        // Person.prototype.sayName = function(name, age, job) {
        //     console.log(this.name + "工作是" + this.job);
        // }

        // var person1 = new Person('summer', '12', 'doctor');
        // var person2 = new Person('sunny', '22', 'writer');
        // person1.sayName();


        // es6
        // // 定义一个动物类(构造函数)
        // function Animal(type, name, color) {
        //     this.type = type; // 定义品种
        //     this.name = name; // 动物名称
        //     this.color = color; //颜色
        // };

        // Animal.prototype.watchHome = function() {
        //         console.log(this.name + "可以看家");
        //     }
        //     //实例化cat对象
        // let cat = new Animal("猫科动物", "中华狸花猫", "黑色");
        // let dog = new Animal("犬科动物", "中华田园犬", "黄色");

        // console.log(cat);
        // console.log(dog);
        // cat.watchHome();
        // dog.watchHome();
    </script>


    <!-- 第五题第2题 -->
    <script>
        //Promise封装ajax
        // function ajax(_url, _data, _method) {
        //     // 设置GET请求为默认请求
        //     let method = _method || "GET";
        //     let data = _data || null;

        //     return new Promise((resolve, reject) => {
        //         let xhr = new XMLHttpRequest();
        //         if (method.toUpperCase() == "GET") {
        //             let str = "?";
        //             // 处理get请求的参数
        //             for (let k in data) {
        //                 str += `${k}=${data[k]}&`;
        //             };
        //             str = str.slice(0, -1);
        //             xhr.open(method, _url + str);
        //         } else {
        //             xhr.open(method, _url);
        //         }
        //         xhr.setRequestHeader("Content-Type", "application/json");
        //         xhr.send(JSON.stringify(data));
        //         xhr.addEventListener("readystatechange", () => {
        //             if (xhr.readyState == 4) {
        //                 if (xhr.status == 200) {
        //                     // console.log(xhr.responseText); //获取后台的文本格式
        //                     resolve(JSON.parse(xhr.responseText)); // 将后台返回的文本转成JSON对象
        //                 } else {
        //                     // 拒绝
        //                     reject(JSON.parse(xhr.responseText));
        //                 }
        //             }
        //         });
        //     });

        // }
    </script>


    <!-- 第五题的第3题 -->
    <script>
        // 第一种
        // let arr = [1, 2, 5, 2, 4, 5, 10, 2, 5, 1, 2, 4, 5, 8, 6, 4];
        // let newArr = [];
        // for (let i = 0; i < arr.length; i++) {
        //     if (newArr.indexOf(arr[i]) == -1) {
        //         newArr.push(arr[i]);
        //     }
        // };
        // newArr.sort(function(a, b) {
        //     return a - b;
        // });
        // console.log(newArr);

        // 第二种
        // let arr = [1, 2, 5, 2, 4, 5, 10, 2, 5, 1, 2, 4, 5, 8, 6, 4];
        // let newArr = [];
        // arr.filter(function(item, index) {
        //         if (newArr.indexOf(item) == -1) {
        //             newArr.push(item);
        //         }
        //         return item;
        //     })
        // newArr.sort(function(a, b) {
        //     return a - b;
        // });
        // console.log(newArr);

        // 第三种
        // let arr = [1, 2, 5, 2, 4, 5, 10, 2, 5, 1, 2, 4, 5, 8, 6, 4];
        // let newArr = [];
        // arr.forEach(function(item, index) {
        //     if (newArr.indexOf(item) == -1) {
        //         newArr.push(item);
        //     }
        // });
        // newArr.sort(function(a, b) {
        //     return a - b;
        // });
        // console.log(newArr);

        // 第四种
        // let arr = [1, 2, 5, 2, 4, 5, 10, 2, 5, 1, 2, 4, 5, 8, 6, 4];
        // let newArr = [];
        // arr.forEach(function(item, index) {
        //     if (!newArr.includes(item)) {
        //         newArr.push(item)
        //     }
        // });
        // newArr.sort(function(a, b) {
        //     return a - b;
        // });
        // console.log(newArr);

        // 第五钟
        // let arr = [1, 2, 5, 2, 4, 5, 10, 2, 5, 1, 2, 4, 5, 8, 6, 4];
        // arr.sort(function(a, b) {
        //     return a - b;
        // });
        // console.log(...new Set(arr));
    </script>
</body>

</html>